package leetcode_101_120;

import utils.TreeNode;

public class hasPathSum_112 {

    /**
     * 判断该树中是否存在 根节点到叶子节点 的路径，这条路径上所有节点值相加等于目标和
     * @param root 根节点
     * @param targetSum 目标和
     * @return
     */
    public boolean hasPathSum(TreeNode root, int targetSum) {
        /**
         * 不需要什么复杂思路
         * 只需要对每个叶子节点进行判断即可
         * 0ms
         */
        return function(root,0, targetSum);
    }
    public boolean function(TreeNode root,int sum,int targetSum){
        if(root==null)
            return false;

        sum += root.val;

        if (root.right == null && root.left == null) {  //到了叶子节点
            if (sum == targetSum)
                return true;
            else
                return false;
        }

        return function(root.left,sum,targetSum) || function(root.right,sum,targetSum);
    }
}
